<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>函数中的this</title>
	</head>
	<body>
		<!-- 1.this是什么?
		  任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window
		  所以函数内部都有一个变量this
		  它的值是调用函数的当前对象
		2.如何确定this值?
		test(): window
		p.test(): p
		new test(): 新创建的对象
		p.call(obj): obj -->
		
		<script type="text/javascript">
			function Person(color){
				console.log(this)
				this.color = color;
				this.getColor = function(){
					console.log(this)
					return this.color;
				};
				this.setColor = function(color){
					console.log(this)
					this.color = color;
				}
			}
			
			Person("red");//this是谁? window
			
			var p = new Person("yello"); //this是谁? P
			p.getColor();//this是谁? P
			var obj = {};
			p.setColor.call(obj,"black");//this是谁?obj
			var test = p.setColor;
			test();//this是谁? window
			function fun1(){
				function fun2(){
					console.log(this);
				}
				fun2();//this是谁?window
			}
			fun1();
		</script>
	</body>
</html>
